7dd0e850b3a7557b4146df94725d5a4a25405470,src/main/java/org/cojen/tupl/_UndoLog.java,_UndoLog,persistReady,#,149
Before Change
* commit lock.
*/
private void persistReady() throws IOException {
if (mNode != null) {
return;
}
_Node node;
byte[] buffer = mBuffer;
if (buffer == null) {
mNode = node = allocUnevictableNode(0);
// Set pointer to top entry (none at the moment).
node.undoTop(pageSize(node.mPage));
node.releaseExclusive();
} else {
mNode = node = allocUnevictableNode(0);
int pos = mBufferPos;
int size = buffer.length - pos;
long page = node.mPage;
int newPos = pageSize(page) - size;
p_copyFromArray(buffer, pos, page, newPos, size);
// Set pointer to top entry.
node.undoTop(newPos);
mBuffer = null;
mBufferPos = 0;
node.releaseExclusive();
}
}
After Change
mNode = node = allocUnevictableNode(0);
byte[] buffer = mBuffer;
if (buffer == null) {
// Set pointer to top entry (none at the moment).
mNodeTopPos = pageSize(node.mPage);
} else {
int pos = mBufferPos;
int size = buffer.length - pos;
long page = node.mPage;
int newPos = pageSize(page) - size;
p_copyFromArray(buffer, pos, page, newPos, size);
// Set pointer to top entry.
mNodeTopPos = newPos;
mBuffer = null;
mBufferPos = 0;
}
}
node.undoTop(mNodeTopPos);
node.releaseExclusive();
}
private int pageSize(long page) {